package org.ccay.manage.security.dao;

import java.util.List;

import org.ccay.core.base.BatchVO;
import org.ccay.security.vo.ProgramRolesVO;

public interface IPermissionDao {
	
	/**
	 * 通过角色ID获取权限点的字符串表示
	 * @param roleId
	 * @return
	 */
	List<String> findPermissionStringByRoleId(Long roleId);

	/**
	 * 插入用户权限
	 * @param permissions
	 */
	void insertRolePermissions(List<String> permissions,Long roleId);
	
	/**
	 * 清空某角色的权限
	 * @param roleId
	 */
	void deleteRolePermissions(Long roleId);

	/**
	 * 获取用户的数据范围及角色
	 * @param roleId
	 * @return
	 */
	List<ProgramRolesVO> findProgramRolesByUserId(Long roleId);

	/**
	 * 与数据库中已存在的数据校验角色范围是否重复
	 * @param batchItems
	 * @param userId
	 * @return
	 */
	List<String> checkRoleProgramUnique(BatchVO<ProgramRolesVO> batchItems,Long userId);

	/**
	 * 用户授权处理
	 * @param batchItems
	 */
	void userAuthz(BatchVO<ProgramRolesVO> batchItems,Long userId);

}
